import ToastComponent from './JtLay'

const Toast = {}

/**
 * @method 注册插件
 * @param {Function} Vue构造器
 */
Toast.install = (Vue) => {
  // debugger
  const ToastConstructor = Vue.extend(ToastComponent)
  const instance = new ToastConstructor() // 创建toast子实例
  instance.$mount(document.createElement('div')) // 挂载实例到我们创建的DOM上
  document.body.appendChild(instance.$el)


  // Vue.prototype.$lay = {};
  var fun = function(){
    return{
      /**
       * @method 提示框
       * @param {String} msg 内容
       * @param {Number} duration 显示时间, 默认2000
       */
      toast: function(msg, duration = 2000){
          instance.toast_message = msg
          instance.toast_show = true // 调用$toast()则显示提示
          setTimeout(() => {
            instance.toast_show = false // duration秒后toast隐藏
          }, duration)
      },
      /**
       * @method loading效果
       * @param {Number} type 类型 1.正常加载显示. -1停止加载
       * @param {Number} duration 显示时间, 默认2000  时间为0时，为无限(一天)
       */
      loading: function(type, duration = 2000){
        instance.loading_show = true;
        //禁止滚动条
        document.documentElement.style.overflow = 'hidden';

        if(duration === 0){
          duration = 86400000;//一天
        }
        
        if(type === -1){
          instance.loading_show = false;
          document.documentElement.style.overflow = '';
          return;
        }
        setTimeout(() => {
          instance.loading_show = false;
          document.documentElement.style.overflow = '';
        }, duration)
      }
    }
  }();
  Vue.prototype.$lay = fun;

  /**
   * @method 提示框
   * @param {String} msg 内容
   * @param {Number} duration 显示时间, 默认2000
   */
  // 添加实例方法，以供全局调用
  // Vue.prototype.$toast = (msg, duration = 2000) => {
  //   instance.message = msg
  //   instance.show = true // 调用$toast()则显示提示
  //   setTimeout(() => {
  //     instance.show = false // duration秒后toast隐藏
  //   }, duration)
  // }
}

export default Toast